#e
#Title[U؁u̐X̖J̉v]
#Text[]
#Image[]
#BackGround[]
#BGM[]
#PlayLevel[Extra]
#ScriptVersion[2]
#Player[FREE]


script_enemy_main
{
let wta=24;
let usebomb=0;

	//GoɈxs镔
	@Initialize
	{
	//   eϐ

	//   XyJ[hf[^
	SetLife(1000);
	SetScore(200000);
	SetDamageRate(25,  0);
	SetTimer(80);
	SetInvincibility(250);
	LoadGraphic("script\img\ExRumia.png");
	CutIn(KOUMA,"U؁u̐X̖J̉v",GetCurrentScriptDirectory~"..\img\cutin08.png",0,0,255,320);
	}
	//   ʒu܂ňړ
	SetMovePosition02(GetCenterX, GetCenterY-120, 60);

	BG_Standard;
	AtackTaskA;
	AtackTaskB;
	MoveTask;
	ControlTask;
	//G̃Ct0ɂȂ܂ŁA̕1t[1s
	@MainLoop
	{
		yield;


		if(OnBomb==false){
			SetCollisionA(GetX, GetY, 32);
			SetCollisionB(GetX, GetY, 24);
			usebomb=0;
		}
		else{
			usebomb++;
		}
		if(usebomb==1){
			BombBarrier;
		}
	}
	
	//`惋[vB1t[1s
	@DrawLoop
	{
		SetGraphicRect(0,1,63,64);
		if(GetSpeedX<0){
			SetGraphicRect(128,1,191,64);
		}
		if(GetSpeedX>0){
			SetGraphicRect(192,1,255,64);
		}
		SetColor(255,255,255);
		SetAlpha(255);
		if(OnBomb==true){SetAlpha(96);}
		SetTexture("script\img\ExRumia.png");//摜͔q
		DrawGraphic(GetX(),GetY());//G̍WEx[~A`;
	}
		
	//GłuԂɈxs镔
	@Finalize
	{
		DeleteGraphic("script\img\ExRumia.png");
		DeleteGraphic(GetCurrentScriptDirectory ~"..img\back1.png");
		DeleteGraphic(GetCurrentScriptDirectory ~"..img\back2.png");
	}
	//XyJ[h̔wi
	//Ă悢
	@BackGround
	{
		BG_Simple;
	}

	task AtackTaskA{
		wait(120);
		while(true){
			loop(7){
				let basex=rand(GetClipMinX,GetClipMaxX);
				let basey=rand(GetClipMinY,160);
				let dir=rand(45,135);
				Sakura(cos(dir)*8+basex,sin(dir)*8+basey,dir,120,PURPLE11);
			}
			wait(wta);
		}
	}
	task AtackTaskB{
		let wtb=160;
		wait(160);
		while(true){
			let x=GetX;//rand(GetCenterX-100,GetCenterX+100);
			let y=GetY;//rand(GetClipMinY+80,GetCenterY-100);
			let dir=atan2(GetPlayerY-y,GetPlayerX-x)-40;
			loop(5){
				CreateShot01(x,y,1.2,dir,RED03,30);
				dir+=20;
			}
			wait(wtb);
			if(wtb>80){wtb--;}
		}
	}

	task Sakura(		//@̋߂Őς
		let x,		//ݒuW
		let y,
		let dir,
		let range,	//͈
		let grf
	){
		let obj=Obj_Create(OBJ_SHOT);
		let spd=0;
		Obj_SetPosition(obj,x,y);
		Obj_SetAngle(obj,dir);
		Obj_SetSpeed(obj,spd);
		ObjShot_SetDelay(obj,20);
		ObjShot_SetGraphic(obj,grf);
		while(!Obj_BeDeleted(obj)){
			Obj_SetSpeed(obj,spd);
			let dist=DistanceToPlayer(Obj_GetX(obj),Obj_GetY(obj));	//
			if(dist>range){
				if(spd<1.5){
					spd+=0.02;
				}
			}
			else {
				if(spd>0.3){
					spd-=0.02;
				}
			}
			yield;
		}
	}



	task MoveTask{
		wait(120);
		while(true){
			SetMovePosition02(rand(GetCenterX+60,GetClipMaxX-120), rand(GetClipMinY+60,GetCenterY-120), 80);
			wait(120);
			SetMovePosition02(rand(GetCenterX-60,GetCenterX+60), rand(GetClipMinY+60,GetCenterY-120), 80);
			wait(120);
			SetMovePosition02(rand(GetClipMinX+120,GetCenterX-60), rand(GetClipMinY+60,GetCenterY-120), 80);
			wait(120);
			SetMovePosition02(rand(GetCenterX-60,GetCenterX+60), rand(GetClipMinY+60,GetCenterY-120), 80);
			wait(120);
		}
	}

	task ControlTask{
		wait(250);
		while(GetEnemyLife>800&&GetTimer>20){yield;}
		wta=21;
		while(GetEnemyLife>600&&GetTimer>20){yield;}
		wta=18;
		while(GetEnemyLife>400&&GetTimer>20){yield;}
		wta=15;
		while(GetEnemyLife>200&&GetTimer>20){yield;}
		wta=12;
		while(GetTimer>20){yield;}
		wta=9;
	}

	#include_function".\function.txt"
}

